This disclosure relates in general to secure computing systems and, more specifically to address space control amongst other things.
Conventional programmable computing systems allow programs to access the address space with few controls. All memory and ports are mapped into the address space. Programs may be limited to a certain range of address space using a memory management unit (MMU). MMU functions include translation of virtual addresses to physical addresses (i.e., virtual memory management), memory protection, cache control, bus arbitration, and, possibly, bank switching. The control features of the MMU are reprogrammable in software.
The MMU signals errors to the operating system. Errors could include page faults that indicate access to a segment of memory not currently assigned. The operating system can assign different memory space. The processor running the operating system is required to be in stable operation if the MMU is expected to operate properly. If the processor begins to malfunction, the MMU could be reprogrammed.
Hackers are known to exploit operating systems despite conventional controls such as a MMU. Buffer overflows are a common technique to exploit programmable processors. Once the buffer overflow is exploited, a hacker can insert malicious code that takes over the operating system in some way. Gaming systems and smart phones have often been co-opted using this technique in order to run unauthorized third party applications.
Any software control of a processor is susceptible to hacking, crashing and other anomalous behavior. It is the nature of software to be unstable at times. Processors are complex and can suffer lock-ups. Every computer user is familiar with their computer locking and requiring a reset or power down to get the computer operating properly. For certain applications, such vulnerability is unacceptable even though the flexibility of using a computer is desirable.